1. Field of the Invention
The present invention relates to the field of remote memory access, and in particular to a method and apparatus for providing remote memory access in distributed memory multiprocessor systems.
2. Description of the Related Art
FIG. 1 illustrates a prior art multi-processing system. In symmetric multi-processing systems (SMP) 1 there are a plurality of processor elements 2 coupled together by a processor bus 6. The processor elements 2 are coupled to I/O devices 8 through the processor bus, and also to memory 4 through the processor bus 6. Processor elements 2 PE1, PE2 . . . PEn share memory 4. In SMP systems based on a shared bus 6, the issues of memory consistency and cache coherency are usually addressed by the protocol of the shared bus.
FIG. 2 illustrates another prior art multi-processing system. In massively parallel processing systems (MPP) 20, there are a plurality of nodes connected by a network. A node comprises of a plurality of processor elements 22 coupled to I/O 28 and memory 24 through a processor bus 26. Nodes 21 are connected to each other within the network through a number of routers 28. In MPP large scale systems, processing nodes 21 are connected using a high speed network.
In these networks, a "message passing" programming model and style is used. This programming model is different and distinct from the "shared memory" style of programming used in shared bus design of SMP systems.
A major drawback of the "message passing" programming model is that for each access to a remote node, the amount of data shared must be large enough to justify the overhead (i.e., resources used). For example, fine-grain sharing (i.e., transfer of double words or smaller blocks of information) between nodes is inefficient and wastes system resources. Thus, there is a need for a remote memory access architecture that is scalable to support MPP large scale systems and also facilitates fine-grain sharing of memory without wasting computer resources.